The present invention relates to testing programmable logic devices (PLDs). In particular, the present invention relates to testing those portions of PLDs that are important to customers.
A PLD is a programmable circuit device that can include many diverse components, such as programmable logic (for performing logic operations on input data) as well as specialized components, such as phase-locked loops (PLLs), delay-locked loops (DLLs), digital signal processors (DSPs), memory, etc. The PLD also includes “interconnects” that connect the components to each other and to inputs and outputs. These components and their interconnects may be referred to generally as “resources”. The resources of the PLD can be controlled and connected in configurable ways in order to perform whatever specialized application a customer wishes.
Traditional testing of PLDs is similar to testing of other integrated circuit devices. Namely, all the inputs, outputs, resources, and interconnects are tested for defects. Such testing takes time. Such testing is normally performed by specialized equipment at the PLD manufacturer. If a defect is found, the PLD is identified as defective. The defective PLD is not further configured and is not provided to the customer. The defective PLD may be analyzed to determine the cause of the defect, or the defective PLD may simply be scrapped. In either case, the defective PLD can be viewed as an inefficiency that reduces the revenue of the PLD manufacturer.
Testing all of the resources in the entire PLD is time-consuming, in development time as well as actually running the tests. Due to the number of configurations involved and the pins required to run the factory tests, they are also unsuitable for use in a customer's system.
In many cases, the customer does not require the use all the resources of the PLD in the customer's application. In such cases, even if a particular PLD has a defect, if that defect is unimportant to the customer's application, that particular PLD may still be appropriate for the customer.
There is a need for a customer to easily perform testing after receiving the PLD from the manufacturer. Further, there is a need to reduce the time required for testing a PLD. Finally, there is a need to test PLDs based on knowledge of the customer's application.